package com.junxian.springboot03.common;

import redis.clients.jedis.Jedis;

import java.util.HashMap;
import java.util.Map;

/**
 * 测试hash值
 */
public class TestHash {

    public static void main(String[] args) {
        Jedis jedis = new Jedis("192.168.31.90", 6379);
        jedis.auth("123456");

        jedis.flushDB();
        Map<String, String> map = new HashMap<>();
        map.put("k1", "v1");
        map.put("k2", "v2");
        map.put("k3", "v3");
        map.put("k4", "v4");
        //添加名称为为hash（key）的hash元素
        jedis.hmset("hash", map);
        //添加名称为为hash（key）key为k5，value为v5的值
        jedis.hset("hash", "k5", "v5");
        System.out.println("获取hash的所有键值对："+jedis.hgetAll("hash"));//return  Map<String, String>
        System.out.println("散列hash的所有键值key为："+jedis.hkeys("hash"));//return Set<String>
        System.out.println("散列hash的所有值value："+jedis.hvals("hash"));//return List<String>
        System.out.println("将k6保存的值+6，如果k6不存在则创建k6："+jedis.hincrBy("hash", "k6", 6));
        System.out.println("获取hash的所有键值对："+jedis.hgetAll("hash"));
        System.out.println("将k6保存的值+6，如果k6不存在则创建k6："+jedis.hincrBy("hash", "k6", 3));
        System.out.println("获取hash的所有键值对："+jedis.hgetAll("hash"));
        System.out.println("删除一个或者多个hash对为："+jedis.hdel("hash", "k1", "k2"));
        System.out.println("获取hash的所有键值对："+jedis.hgetAll("hash"));
        System.out.println("获取hash的所有键值对的个数："+jedis.hlen("hash"));
        System.out.println("判断hash的键值是否存在k1："+jedis.hexists("hash", "k1"));
        System.out.println("判断hash的键值是否存在k6："+jedis.hexists("hash", "k6"));
        System.out.println("获取hash的一个或者多个键值："+jedis.hmget("hash", "k6", "k5"));
    }
}
